package com.tanhua.server.controller;

import com.tanhua.model.db.CalculateScore;
import com.tanhua.model.vo.TestSoulReportVO;
import com.tanhua.model.vo.TestsoulVo;
import com.tanhua.server.service.TestSoulService;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.List;

@RestController
@RequestMapping("/testSoul")
public class TestSoulController {
    @Resource
    private TestSoulService testSoulService;

    /*
    * 接口名称：测灵魂-问卷列表（学生实战）
    * 接口路径：GET
    * 请求参数： 无
    * 返回值     List<TestsoulVo>
    * */
    @GetMapping
    public ResponseEntity testSoul(){
        //调用service层
        List<TestsoulVo> vos = testSoulService.testSoul();
        //返回
        return ResponseEntity.ok(vos);
    }

    /**
     * 接口名称：测灵魂-提交问卷（学生实战）
     * 接口路径：POST
     * 请求参数:(body)
     *          answers object []  （questionId，optionId）
     * 返回数据:
     *              报告id
     */
    @PostMapping
    public ResponseEntity calculateScore(@RequestBody CalculateScore answers){
        //接收参数
        //调用service层
        String id = testSoulService.calculateScore(answers);
        return ResponseEntity.ok(id);
    }

    /**
     * 接口名称：测灵魂-查看结果（学生实战）
     * 接口路径：GET    /report/:id
     * 请求参数：路径id
     * 返回值：  TestSoulReportVO
     */
    @GetMapping("/report/{id}")
    public ResponseEntity<TestSoulReportVO> report(@PathVariable("id") String id){
        //调用service层，
        TestSoulReportVO testSoulReportVO = testSoulService.report(id);
        //将结果返回
        return ResponseEntity.ok(testSoulReportVO);
    }
}
